67 research outputs found

    Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications

    Get PDF
    Real-time systems where applications with timing requirements coexist with applications without timing constraints are increasingly common. Furthermore, the processors used in desktops, smart phones or embedded devices are mostly multi-core, allowing the execution of applications in parallel. This article presents a set of non-blocking synchronization mechanisms to share data between real-time and non-real-time applications executing in different cores of a shared memory multi-core system. Four typical producer/consumer scenarios have been explored; a) shared data object with real-time reader, b) shared data object with real-time writer, c) shared queue with real-time writer, and d) shared queue with real-time reader. For these scenarios we have developed different non-blocking protocols where the execution of the real-time application is always prioritized over the execution of the non-real-time part. In this way, the real-time applications never have to repeat their operations and, consequently, their execution times are bounded. Furthermore, to reduce the overhead caused by the copies of the information used in the non-blocking algorithms, we have imposed the limitation of a single real-time reader or a single real-time writerinthealgorithmsdeveloped.Finally,we have evaluated the response times of the developed protocols on a multi-core device with the Android operating system.This work was supported in part by the Spanish Government and FEDER funds (AEI/FEDER, UE) under Grant TIN2017-86520-C3-3-R (PRECON-I4)

    Performance comparison between the SRP and DFP synchronization protocols in MaRTE OS

    Get PDF
    The Deadline Floor Protocol (DFP) is a mutual exclusion synchronization protocol designed as an alternative to the Baker's Stack Resource Protocol (SRP) to access shared resources in a system scheduled under the Earliest Deadline First (EDF) policy. We have implemented both protocols in the real-time operating system MaRTE OS and we have compared their performance. Overall, DFP is easier to implement and performs better than SRP for the same data structure, a doubly-linked list (DLL). More significantly, there is a more efficient data structure (the binary heap) that cannot be used with SRP and outperforms the DLL with both protocols

    GEN4MAST: A Tool for the Evaluation of Real-Time Techniques Using a Supercomputer

    Get PDF
    REACTION 2014. 3rd International Workshop on Real-time and Distributed Computing in Emerging Applications. Rome, Italy. December 2nd, 2014.The constant development of new approaches in real-time systems makes it necessary to create tools or methods to perform their evaluations in an efficient way. It is not uncommon for these evaluations to be constrained by the processing power of current personal computers. Thus, it is still a challenging issue to know whether a specific technique could perform better than another one, or the improvement remains invariable in all circumstances. In this paper we present the GEN4MAST tool, which can take advantage of the performance of a supercomputer to execute longer evaluations that wouldn’t be possible in a common computer. GEN4MAST is built around the widely used MAST tool, automating the whole process of distributed systems generation, execution of the requested analysis or optimization techniques, and the processing of the results. GEN4MAST integrates several generation methods to create realistic workloads. We show that the different methods can have a great impact on the results of distributed systems.This work has been funded in part by the Spanish Government and FEDER funds under grant number TIN2011-28567-C03-02 (HI-PARTES)

    Response-Time Analysis of Multipath Flows in Hierarchically-Scheduled Time-Partitioned Distributed Real-Time Systems

    Get PDF
    Modern industrial cyberphisical systems exhibit increasingly complex execution patterns like multipath end-to-end flows, that force the real-time community to extend the schedulability analysis methods to include these patterns. Only then it is possible to ensure that applications meet their deadlines even in the worst-case scenario. As a driving motivation, we present a real industrial application with safety requirements, that needs to be re-factored in order to leverage the features of new execution paradigms such as time partitioning. In this context we develop a new response-time analysis technique that provides the capacity of obtaining the worst-case response time of multipath flows in time-partitioned hierarchical schedulers and also in general fixed-priority (FP) real-time systems. We show that the results obtained with the new analysis reduce the pessimism of the currently used holistic analysis approach.This work was supported in part by the Doctorados Industriales 2018 program from the University of Cantabria and the Spanish Government and FEDER funds (AEI/FEDER, UE) under Grant TIN2017-86520-C3-3-R (PRECON-I4)

    On the Convergence of the Holistic Analysis for EDF Distributed Systems

    Get PDF
    Dynamic scheduling techniques, and EDF (Earliest Deadline First) in particular, have demonstrated their ability to increase the schedulability of real time systems compared to fixed-priority scheduling. In distributed systems, the scheduling policies of the processing nodes tend to be the same as in stand-alone systems and, although few EDF networks exist, it is foreseen that dynamic scheduling will gradually develop into real-time networks. There are some response time analysis techniques for EDF scheduled distributed systems, mostly derived from the holistic analysis developed by Spuri. The convergence of the holistic analysis in context of EDF distributed systems with shared resources had not been studied until now. There is a circular dependency between tasks’ release jitter values, response times and preemption level ceilings of shared resources. In this paper we present an extension of Spuri’s algorithm and we demonstrate that its iterative formulas are non-decreasing, even in the presence of shared resources. This result enables us to assert that the new algorithm converges towards a solution for the response times of the tasks and messages in a distributed system

    Selección de una arquitectura many-core comercial como plataforma de tiempo real

    Get PDF
    Los procesadores many-core representan la evolución natural de las arquitecturas de computadores de propósito general. Su aumento de prestaciones y la contribución a la disminución de tamaño, peso y consumo del sistema completo con respecto a los procesadores actuales hace prever que serán usados también como plataformas para sistemas de tiempo real en el futuro. En este artículo se identifi can los requisitos que debería cumplir una arquitectura many-core para su utilización en sistemas de tiempo real y se analizan varios procesadores many-core existentes en el mercado para acabar seleccionando el mejor candidato. Finalmente el artículo adelanta algunos de los retos esperables en el desarrollo del soporte para aplicaciones de tiempo real sobre estos sistemasEste trabajo ha sido nanciado en parte por el Gobierno de España en el proyecto TIN2014-56158-C4-2-P (M2C2)

    Servicios de tiempo real en el sistema operativo Android

    Get PDF
    Debido a la gran expansión y crecimiento de Android el interés por utilizar este sistema operativo en entornos de tiempo real es cada vez mayor. En este trabajo se describen una serie de mecanismos proporcionados por el siste-ma operativo Android/Linux mediante los cuales es posible aislar uno o más núcleos de un multiprocesador simétrico para ser utilizados exclusivamente por tareas con requisitos temporales. Gracias a los mecanismos de aislamiento, la tasa de interferencias sufridas por las tareas con requisitos temporales respecto a otras tareas o aplicaciones que se ejecutan en el sistema operativo es muy baja. Un segundo aspecto en el que se mejora el comportamiento de tiempo real del sistema operativo Android está relacionado con las limitaciones para tiempo real de la librería bionic (modificación de glibc para Android). Para solventar estas limitaciones se ha utilizado la librería glibc incluida en la distribución es-tándar de Linux. Se han realizado una serie de tests que demuestran que la libre-ría tradicional funciona correctamente en Android. Asimismo se ha llevado a cabo la caracterización temporal de Android/glibc para las funciones más rele-vantes de POSIX para tiempo real observándose que la respuesta temporal del sistema es apropiada para aplicaciones de tiempo real laxo.Este trabajo ha sido financiado parcialmente por el Gobierno de España con referencia TIN2014-56158-C4-2-P (M2C2) y por el programa de becas predoctorales de la Universidad de Cantabria

    Real-time Ada applications on Android

    Get PDF
    RESUMEN: Android es el sistema operativo más extendido en el ámbito de los dispositivos móviles. Su gran expansión y desarrollo ha provocado que exista un gran interés para utilizarlo en entornos con requisitos temporales. Este trabajo presenta un mecanismo para utilizar el lenguaje de programación Ada en el desarrollo de aplicaciones de tiempo real sobre Android. Ada es un lenguaje que ofrece soporte para aplicaciones con requerimientos temporales bajo la suposición de que la plataforma de ejecución proporciona las garantías necesarias en tiempos de respuesta. Para satisfacer estas garantías proponemos que las aplicaciones escritas en este lenguaje utilicen los mecanismos de aislamiento proporcionados por el sistema operativo Android/Linux, a través de los cuales es posible aislar uno o varios núcleos del procesador para ser usados exclusivamente por aplicaciones de tiempo real. Además, hemos estudiado los mecanismos que se encuentran disponibles en Android para compartir datos entre aplicaciones Ada con requisitos temporales y el resto de aplicaciones que se ejecutan en el mismo sistema.ABSTRACT:Android is the most extended operating system in the field of smartphones. Its wide diffusion has caused a great interest in using it in real time environments. This paper presents a mechanism to use the Ada programming language for real-time applications on Android. Ada is a language that offers support for environments with real-time requirements under the assumption that the execution platform provides the necessary guarantees on response time. To accomplish these guarantees, we propose that applications written in this language use the isolation mechanisms provided by the Android/Linux operating system through which it is possible to isolate one or several processor cores to use them exclusively with real-time Ada applications. In addition, we have studied the available mechanisms in Android to share data between these isolated real-time Ada applications with other applications executing in the same system.Este trabajo ha sido financiado en parte por el Gobierno de España en el proyecto TIN2014-56158-C4-2-P (M2C2)

    Influence of different abstractions on the performance analysis of distributed hard real-time systems

    Get PDF
    System level performance analysis plays a fundamental role in the design process of hard real-time embedded systems. Several different approaches have been presented so far to address the problem of accurate performance analysis of distributed embedded systems in early design stages. The existing formal analysis methods are based on essentially different concepts of abstraction. However, the influence of these different models on the accuracy of the system analysis is widely unknown, as a direct comparison of performance analysis methods has not been considered so far. We define a set of benchmarks aimed at the evaluation of performance analysis techniques for distributed systems. We apply different analysis methods to the benchmarks and compare the results obtained in terms of accuracy and analysis times, highlighting the specific effects of the various abstractions. We also point out several pitfalls for the analysis accuracy of single approaches and investigate the reasons for pessimistic performance prediction
    corecore